package Servlet;


import java.io.IOException;

import java.util.ArrayList;

import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import EntityBeans.Abilita;
import EntityBeans.EsperienzaLavorativa;
import EntityBeans.Feedback;
import EntityBeans.Indirizzo;
import EntityBeans.PossessoAbilita;
import EntityBeans.RichiestaAmicizia;
import EntityBeans.UtenteRegistrato;
import Sessions.AccettaAbilitaAdminSessionRemote;
import Sessions.AccettaAmiciziaSessionRemote;
import Sessions.RecuperaDatiSessionRemote;
import Sessions.RegistrazioneSessionRemote;
import Sessions.RichiesteAbilitaAdminSessionRemote;
import Sessions.RichiesteAmiciziaSessionRemote;

import java.util.Date;
/**
 * Servlet implementation class ProvaServlet
 */
public class AccettaAbilitaAdminServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private RequestDispatcher d;   
    private GestoreContesto contesto;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AccettaAbilitaAdminServlet() {
        super();
       contesto = new GestoreContesto();
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		try {
			eseguiRichiesta(request,response);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		try {
			eseguiRichiesta(request,response);
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private void eseguiRichiesta(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, NamingException {
		
		AccettaAbilitaAdminSessionRemote gestore = contesto.getGestore(AccettaAbilitaAdminSessionRemote.class, "AccettaAbilitaAdminSessionRemote");
		RichiesteAbilitaAdminSessionRemote gestore1 = contesto.getGestore(RichiesteAbilitaAdminSessionRemote.class, "RichiesteAbilitaAdminSessionRemote");
		String idAbilita = request.getParameter("idabiita");
		String richiesta =  request.getParameter("richiesta");
		if(richiesta.equals("accetta"))
		{
		    gestore.aggiornaAbilitaAccettata(idAbilita);
		}
		
		if(richiesta.equals("rifiuta"))
		{
		    gestore.eliminaAbilita(idAbilita);
		}
		
		String idSessione = request.getParameter("idSessione");	
		ArrayList<Abilita> richiesteAbilita = gestore1.richiesteAbilita();
		
		if(richiesteAbilita==null || richiesteAbilita.size()==0)
		{
			request.setAttribute("msg", "Non sono presenti richieste di abilita nel database");
			request.setAttribute("idSessione", idSessione);
			d=request.getRequestDispatcher("ErroreUtenteReg.jsp");
			d.forward(request, response);
		}
		else
		{
			request.setAttribute("numeroAbilita", richiesteAbilita.size());
		    request.setAttribute("msg", "Richieste di abilita richieste:");
		    request.setAttribute("idSessione", idSessione);
			for(int i=0; i<richiesteAbilita.size();i++)
			{
				request.setAttribute("idabiita"+i, richiesteAbilita.get(i).getId());
				request.setAttribute("nomeabiita"+i, richiesteAbilita.get(i).getNome());
				request.setAttribute("descrizioneabiita"+i, richiesteAbilita.get(i).getDescrizione());
			}
			d=request.getRequestDispatcher("RichiestaAbilitaAdmin.jsp");
			d.forward(request, response);
		}
			
		}
		
	}


